Skip to content

Conversation

@ngholiza
Copy link
Collaborator

Templates keep their own copy of each equipment input, so later equipment edits (fixed units, renamed inputs) never reached them, and the edit page shows that copy read-only. Reported by Tyriq Turner: MAX Synthesis WL-1/WL-2 show Heating/Cooling Rate as N/A while the furnace says °C/min, and 'Max Temperature' next to the furnace's renamed 'Temperature'.

When a template is edited:

  • unit, type and settability come from the current equipment registration;
  • inputs the equipment no longer has get a not on equipment badge (set them to Not used to drop them);
  • a Variable tool-controlled input is shown as Fixed, as it is saved;
  • before saving, each used input's default and bounds are checked against its (possibly new) type, including ISO 8601 date/time defaults.

Web-only change (web/app/experiment/new/page.tsx). tsc and ESLint clean; scenario checks run against the WL templates' real data. Codex review: APPROVE after 4 rounds.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ppc5pC4MsLsz5apZ9qWTmq

A template keeps its own copy of each equipment input, so later equipment
edits (new units, renamed inputs) never reached it, and the edit page shows
that copy read-only. In edit mode, take unit, type and settability from the
current equipment registration, and mark inputs the equipment no longer has
as 'not on equipment' so the owner can set them to Not used.

Reported by Tyriq Turner (MAX Synthesis WL-1/WL-2: rates stuck at N/A,
Max Temperature shown next to Temperature).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ppc5pC4MsLsz5apZ9qWTmq
- Use the equipment's unit as is, including an empty one.
- Show a tool-controlled Variable input as Fixed, as it is saved.
- Flag template inputs even when the equipment now has none, but only
  once its registration loaded.
- Before saving an edit, check each used input's default and bounds
  against its (possibly new) type.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ppc5pC4MsLsz5apZ9qWTmq
Bounds of an integer input may be fractional, as the run validators allow;
require only that a whole number lies between them. Date/time defaults are
checked as ISO 8601 with real calendar and clock values, since template
saves are not validated by the API.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ppc5pC4MsLsz5apZ9qWTmq
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ppc5pC4MsLsz5apZ9qWTmq
Sign in to join this conversation on GitHub.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant